[volume][bind mount]标识符-v和--mount解析

参考:

Use volumes

Use bind mounts

docker run命令的标识符-v--mount均可用于卷操作和绑定挂载操作

最开始-v仅作用于独立容器(standalone container),而--mount作用于swarm服务。从Docker 17.06开始,--mount也可作用于独立容器

语法

两者语法最大的不同在于-v将所有选项组合成一个字段,而--mount通过不同字段来配置不同选项

卷操作

如果卷驱动程序接受逗号分隔的列表作为选项,则必须从外部csv解析器转义该值。要转义volume opt,请用双引号("")将其括起来,并用单引号('')将整个挂载参数括起来。比如

$ docker service create \
     --mount 'type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=local,volume-opt=type=nfs,volume-opt=device=<nfs-server>:<nfs-path>,"volume-opt=o=addr=<nfs-address>,vers=4,soft,timeo=180,bg,tcp,rw"'
    --name myservice \
    <IMAGE>

绑定挂载操作

异同

虽然-v--mount均可用于存储操作,但两者之间存在些许差异

卷操作

绑定挂载操作

当作用于主机上不存在的文件或目录时